package cn.com.wdjedu.androidapp.wjeduandroid.ui.baseui;

import android.app.ActionBar;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.MenuItem;
import android.widget.TextView;

import cn.com.wdjedu.androidapp.wjeduandroid.R;
import cn.com.wdjedu.androidapp.wjeduandroid.ui.BaseActivity;

/**
 * 为了解决标题栏的显示问题
 */
public abstract class ActionBarActivity extends BaseActivity {
    //标题栏的Title
    private String actionBarText;
    //是否显示回退
    private boolean isShowBackIcon;
    //文本标题
    private TextView tvTitle;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        initActionBar();

    }

    private void initActionBar() {
//        getActionBar().setDisplayShowHomeEnabled(false);//左上角图标icon是否可显示
//        getActionBar().setDisplayHomeAsUpEnabled(true);  //左上角返回图标是否可显示
//        getActionBar().setHomeButtonEnabled(true);  //左上角图标是否可点击
        final ActionBar actionBar = this.getActionBar();
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setCustomView(R.layout.actionbar);
        tvTitle = (TextView) actionBar.getCustomView().findViewById(R.id.tv_title);
        tvTitle.setText(actionBarText);
        if (isShowBackIcon) {
            actionBar.setDisplayHomeAsUpEnabled(true);
        } else {
            actionBar.setDisplayHomeAsUpEnabled(false);
        }


        // 设置不显示左侧图标
        actionBar.setDisplayShowHomeEnabled(false);

//        // 重要内容，获取Title的id....
//        // 关于id的定义，可见于SDK安装目录下的sdk\platforms\android-21\data\res\layout
//        int titleId = Resources.getSystem().getIdentifier("action_bar_title",
//                "id", "android");
//
//        // 既然获取了id，那剩下的就发挥想象去涂鸦吧
//        tvTitle = (TextView) findViewById(titleId);
//        tvTitle.setTextColor(0xFFFFFFFF);
////        tvTitle.setTextSize(25);
//
//        // tvTitle.setBackgroundColor(0XFF00FF00);  // 设置背景，便于观察效果
//
//        // 获取屏幕的相关尺寸，用以转换单位
//        DisplayMetrics metric = new DisplayMetrics();
//        getWindowManager().getDefaultDisplay().getMetrics(metric);
//        float density = metric.density;
//        int widthMax = metric.widthPixels;
//
//        // 关键的一刀，设置宽度为屏幕宽度（但是实际显示并不是那样哈）
//        tvTitle.setWidth(widthMax);
//
//        // 既然这些都设置了，为啥不设置个padding什么的呢（控制文字位置）
//        int paddingLeft = (int) (-16 * density);    // 控制左边距
//        int paddingRight = (int) (-60 * density);   // 右边距（近似值）
//        tvTitle.setPadding(paddingLeft, 0, paddingRight, 0);
//
//        // 设置文字居中（因为设置了padding，显示的时候会以padding后的尺寸为准居中显示）
//        tvTitle.setGravity(Gravity.CENTER);
//        actionBar.setTitle(TextUtils.isEmpty(actionBarText) ? "" : actionBarText);
//
        if (isShowBackIcon) {
            actionBar.setDisplayHomeAsUpEnabled(true);
        } else {
            actionBar.setDisplayHomeAsUpEnabled(false);
        }
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                finish();
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }

    }

    /**
     * 中间文本显示内容
     *
     * @param text
     */
    public void setActionTitle(String text) {
        this.actionBarText = text;
    }

    /**
     * 更改文本
     *
     * @param text
     */
    public void updateTitle(String text) {
        setActionTitle(text);
        if (!TextUtils.isEmpty(text)) {
            tvTitle.setText(actionBarText);
        }
    }

    /**
     * 是否显示回退按钮
     *
     * @param isShow
     */
    public void isShowBackIcon(boolean isShow) {
        this.isShowBackIcon = isShow;
    }


}
